<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Form_validation extends CI_Form_validation
{
    public function getErrorsArray()
    {
        return $this->_error_array;
    }
   
   
   /***************************************/
   /* 
    * Function is_unique
    * 
    * If you want to validate on create you do as before.
	*
	*$this->form_validation->set_rules('username', 'User', 'is_unique[t_users.username]'); 
	* 
	*for update you need to pass your unique field name and current value
	*for example for table t_users, username for search, id unique key, $id current unique key value.
	*
	*$this->form_validation->set_rules('username', 'User', 'is_unique[t_users.username.id.'.$id.']'); 
	* 
	* Reffreance: http://codeigniter.com/forums/viewthread/192334/
	*/ 
	
   public function is_unique2($str, $field)
   {
      if (substr_count($field, '.')==3)
      {
         list($table,$field,$id_field,$id_val) = explode('.', $field);
         $query = $this->CI->db->limit(1)->where($field,$str)->where($id_field.' != ',$id_val)->get($table);
      } else {
         list($table, $field)=explode('.', $field);
         $query = $this->CI->db->limit(1)->get_where($table, array($field => $str));
      }
      
      return $query->num_rows() === 0;
    }
    
}
